// 纯函数
function fn1(a, b) {
  return a + b
}

console.log(fn1(2, 3))
//...
console.log(fn1(2, 3))

// 副作用函数
var c = 3
function fn2(a, b) {
  c++
  return a + b + c
}
console.log(fn2(1, 2)) // 6
c = 4
console.log(fn2(1, 2)) // 7



function fn3() {
  // return Math.random() // 使用了副作用函数
  // localStorage.setItem('key', 'value') // 浏览器存储
  // document.getElementById('test').innerHTML = 'abc' // 更新DOM
  axios.get('url') // 异步ajax请求 => 所有异步操作都是effect的
}

// 不纯的函数, 也称为带副作用的函数, 简称副作用函数    effect函数

// vue2  computed/watch/render  ==> watcher
// vue3 computed/watch/render  ==> effect  ==> effect在依赖的数据发生变化时会自动执行